{% extends 'base.html' %}
{% block title %}Ingress{% endblock %}
{% block nav-item-3 %}layui-nav-itemed{% endblock %}
{% block nav-child-3-2 %}layui-this{% endblock %}
{% block content %}
    {% csrf_token %}
<span class="layui-breadcrumb">
  <a href="#">首页</a>
  <a href="#">负载均衡</a>
  <a><cite>Ingresses</cite></a>
</span>
<hr class="layui-border-red">
<div class="layui-card">
    <div class="layui-card-body">
        <div class="layui-row layui-col-space10">
            <div class="layui-col-md12">
                <a class="layui-btn" style="float: left" href="{% url 'ingress_create' %}" target="_self" rel="opener">创建</a>
                <input type="text" name="name" class="layui-input" style="width: 150px;float: left;margin-left: 5px">
                <button class="layui-btn" style="float: left" id="searchBtn">搜索</button>
            </div>

            <div class="layui-col-md12">
                <table id="test" lay-filter="test"></table>
                <script type="text/html" id="barDemo">
                  <a class="layui-btn layui-btn-xs layui-btn-primary" lay-event="yaml">YAML</a>
                  <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
                </script>
            </div>
        </div>
    </div>
</div>
{% endblock %}
{% block js %}
<script>

// 获取当前命名空间
var storage = window.sessionStorage;
var namespace = storage.getItem('namespace');

layui.use('table', function () {
    var table = layui.table;
    var $ = layui.jquery;
    // 动态渲染表格
    table.render({
        elem: '#test'
        ,url: '{% url 'ingress_api' %}?namespace=' + namespace   //数据接口
        ,toolbar: '#toolbarDemo'   //开启头部工具栏，并为其绑定左侧模板
        ,defaultToolbar: ['filter', 'exports', 'print', {  //自定义头部工具栏右侧图标。如无需自定义，去除该参数即可
            title: '提示'
            ,layEvent: 'LAYTABLE_TIPS'
            ,icon: 'layui-icon-tips'
        }]
        ,page: true  //开启分页
        ,cols: [[  //表头
           {field: 'name', title: '名称', sort: true, width: 180}
            ,{field: 'namespace', title: '命名空间', width: 100, sort: true}
            ,{field: 'http_hosts', title: 'HTTP', width: 260, templet: httpFormat}
            ,{field: 'https_hosts', title: 'HTTPS', templet: httpsFormat}
            ,{field: 'service', title: '关联 Service', width: 260, templet: serviceFormat}
            ,{field: 'create_time', title: '创建时间', width: 170}
            ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
        ]]
        ,id: "TT"
    });
    function httpFormat(d) {
        return "域名: " + d.http_hosts.host + '<br>' + "路径: " + d.http_hosts.path + '<br>'
    }
    function httpsFormat(d){
        if(d.https_hosts != null){
            return "域名: " + d.https_hosts.host + '<br>' + "证书Secret名称: " + d.https_hosts.secret_name + '<br>';
        } else {
            return "None"
        }
    }
    function serviceFormat(d) {
        return "名称: " + d.http_hosts.service_name + '<br>' + "端口: " + d.http_hosts.service_port + '<br>';
    }
    // 监听行工具事件
    table.on('tool(test)', function (obj) {
        var data = obj.data;
        //console.log(obj)
        if (obj.event === 'del') {
            layer.confirm('你真要删除' + data.name + 'Ingress吗？', function (index) {
                var csrf_token = $('[name="csrfmiddlewaretoken"]').val();
                $.ajax({
                    type: "DELETE",
                    url: "{% url 'ingress_api' %}",
                    data: data,
                    headers: {'X-CSRFToken': csrf_token},
                    success: function (res) {
                        if (res.code == 0) {
                            obj.del();   // 删除当前页面数据
                            layer.msg(res.msg,{icon: 6, time: 3000})  // 默认停顿3秒
                        } else {
                            layer.msg(res.msg,{icon: 5})
                        }
                    },
                    error: function () {
                        layer.open({
                            type: 0,
                            title: ['异常信息'],
                            content: "服务器接口异常！"
                        })
                    }
                });
                layer.close(index);
            });
        } else if (obj.event === 'yaml'){
            // 查查YAML
            layer.open({
                title: "YAML",
                type: 2,  //从一个网址加载
                area: ["50%", "60%"],
                content: '{% url 'ace_editor' %}?resource=ingress&' + 'namespace=' + data.namespace + '&name=' + data.name
            })
        }
    });
    // 监听搜索事件
    $('#searchBtn').click(function () {
        var search_key = $('input[name="name"]').val();
        table.reload('TT', {
            where: {
                search_key: search_key
            }
        })
    })
})
</script>
{% endblock %}